﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ZhimeiSoft.CharmManager.DOL;
using System.Data;

namespace ZhimeiSoft.CharmManager.Interface
{
    public interface IBusinessService
    {
        #region 员工信息

        /// <summary>
        /// 新增员工信息
        /// </summary>
        /// <param name="employee">员工信息实体类</param> 
        /// <returns>员工ID</returns>
        bool InsertEmployee(EmployeeEntity employee, out string error);
        /// <summary>
        /// 更新员工信息
        /// </summary>
        /// <param name="employee">员工信息实体类</param>
        bool UpdateEmployee(EmployeeEntity employee, out string error);
        /// <summary>
        /// 删除员工信息
        /// </summary>
        /// <param name="employeeid">员工ID</param>
        bool DeleteEmployee(int employeeid, out string error);
        /// <summary>
        /// 根据员工状态查询员工信息
        /// </summary>
        /// <param name="state">状态F0E 在职、 F0Q 离职、 F0S停岗</param>
        /// <param name="dsEmployeeData">返回员工数据</param>
        /// <param name="error">错误信息</param>
        /// <returns>返回是否成功</returns>
        bool QueryEmployeeState(string state, out DataSet dsEmployeeData, out string error);

        #endregion

        #region  员工假期

        /// <summary>
        /// 插入员工休假记录
        /// </summary>
        /// <param name="employeeVacation"></param>
        /// <returns></returns>
        bool InsertEmployeeVacation(DBEntityEmoloyeeVacation employeeVacation, out string error);
        /// <summary>
        /// 删除员工休假记录
        /// </summary>
        /// <param name="employeeVacation"></param>
        /// <returns></returns>
        bool DelEmployeeVacation(DBEntityEmoloyeeVacation employeeVacation, out string error);
        /// <summary>
        /// 更新员工休假记录
        /// </summary>
        /// <param name="employeeVacation"></param>
        /// <returns></returns>
        bool UpdateEmployeeVacation(DBEntityEmoloyeeVacation employeeVacation_old, DBEntityEmoloyeeVacation employeeVacation_new, out string error);
        /// <summary>
        /// 根据开始时间查询员工休假记录
        /// </summary>
        /// <param name="startDate">开始时间</param>
        /// <param name="endDate">结束时间</param>
        /// <param name="dsEmployeeVacation">返回数据</param>
        /// <param name="error">错误信息</param>
        /// <returns>返回是否成功</returns>
        bool QueryEmployeeVacationDateTime(string startDate, string endDate, out DataSet dsEmployeeVacation, out string error);
        /// <summary>
        /// 根据起始时间和员工ID
        /// </summary>
        /// <param name="employeeID">员工ID</param>
        /// <param name="startDate">开始时间</param>
        /// <param name="endDate">结束时间</param>
        /// <param name="dsEmployeeVacation">返回数据</param>
        /// <param name="error">错误信息</param>
        /// <returns></returns>
        bool QueryEmployeeVacationEmployeeID(int employeeID, string startDate, string endDate, out DataSet dsEmployeeVacation, out string error);

        #endregion

        #region 店信息

        /// <summary>
        /// 返回店信息
        /// </summary>
        /// <param name="dsSalonInfo">店信息数据集</param>
        /// <param name="error">返回错误信息</param>
        /// <returns>是否成功</returns>
        bool QuerySalonInfo(out DataSet dsSalonInfo, out string error);

        #endregion

        #region 客户信息

        /// <summary>
        /// 添加客户信息
        /// </summary>
        /// <param name="customer"></param>
        /// <returns></returns>
        bool InsertCustomer(DBEntityCustomInfo customer, out string error);

        /// <summary>
        /// 修改客户信息
        /// </summary>
        /// <param name="customer"></param>
        bool UpdateCustomer(DBEntityCustomInfo customer, out string error);

        /// <summary>
        /// 删除客户信息
        /// </summary>
        /// <param name="customerID"></param>
        bool DeleteCustomer(int customerID, out string error);
        /// <summary>
        /// 根据用户状态获取信息
        /// </summary>
        /// <param name="sateStr">状态字符串</param>
        /// <returns>返回数据</returns>
        bool QueryCustomState(string stateStr, out DataSet dsCustomInfo, out string error);
        /// <summary>
        /// 根据用户ID获取用户信息
        /// </summary>
        /// <param name="customID">用户ID</param>
        /// <param name="dsCustomInfo">返回用户数据</param>
        /// <param name="error">错误信息</param>
        /// <returns>是否成功</returns>
        bool QueryCustomID(int customID, out DataSet dsCustomInfo, out string error);
        #endregion

        #region 预约管理
        /// <summary>
        /// 插入预约记录
        /// </summary>
        /// <param name="scheduleInfo">信息类</param>
        bool InsertSchedule(DBEntitySchedule scheduleInfo, out string error);
        /// <summary>
        /// 删除一条预约记录
        /// </summary>
        /// <param name="scheduleInfo">信息类</param>
        bool DeleteSchedule(DBEntitySchedule scheduleInfo, out string error);
        /// <summary>
        /// 更新一条预约记录
        /// </summary>
        /// <param name="scheduleInfo">信息类</param>
        bool UpdateSchedule(DBEntitySchedule scheduleInfo, out string error);
        /// <summary>
        /// 按照预约状态获取记录
        /// </summary>
        /// <param name="scheduleState">预约状态</param>
        /// <returns>返回数据</returns>
        bool QueryScheduleState(string scheduleState, out DataSet dsSchedule, out string error);
        #endregion
    }
}
